<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // js中有哪些数据类型，他们之间有什么区别？
        // 基本数据类型： string/number/boolean/null/undefined/symbol
        // 引用数据类型： object/function/array
        /*
            区别：
                1. 声明变量的时候存储分配
                    基本数据类型是存储在栈中，而引用数据类型是存储在堆中的，栈中存储的是其对应的地址值
                2. 不同的内存分配机制也带来了不同的访问机制
                    不可以直接访问堆内存空间的位置，以及直接操作堆内存空间，只能操作对象在栈内存中引用地址
                    基本数据类型是可以直接访问到的，但引用数据类型访问引用地址，根据引用地址找到堆中的实体
                3. 复制变量时的不同
                    基本数据类型复制一个值的时候是直接将值赋值给新变量，但引用数据类型是把地址值赋值给新变量，所以两个变量最终指向的是同一个对象
        */ 

        var a = [1,2,3,4,5];
        var b = a;
        var c = a[0];
        console.log(b);
        console.log(c);

        // 改变数值
        b[4] = 6;
        c = 7;
        console.log(a[4]);
        console.log(a[0]);
    </script>
</body>
</html>